home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / PVDRIVER / PPRTR3.ZIP / READ.ME < prev   
Text File  |  1993-07-14  |  15KB  |  331 lines

  1. PPRTR.DLL copyright 1993 Paul F. Poellinger
  2. -------------------------------------------------------------------
  3. v3.1 -- contains a fix for user defined page length/width
  4. NOTE: When setting a user-defined pagelength or pagewidth,
  5.       you do not need to change the pagesize to user-defined
  6.       first...the pagelength/pagewidth actions do it for you.
  7.      -- added GetPort function
  8. v3.0 -- added PrtrCap, GetPrtr functions
  9. v2.0 -- fixed copies error
  10. -------------------------------------------------------------------
  11.  
  12. Included:
  13.  
  14. PPRTR    DLL                 The real deal
  15. READ     ME                  self-reference (this)
  16. PPRTR    FRM                 .. \    Visual Basic
  17. PPRTR    MAK                   ..>   (version 2.0)
  18. PPRTR    BAS                 .. /    Example of PPrtr functions
  19. PPGLOBAL TXT                 VB constants
  20. PPRTR    LIB                 Import library for C
  21. PRINT    TXT                 constant definitions from C header file
  22. DEVCAP   TXT                 device cap definitions from C hdr file
  23.  
  24. functions:
  25.  
  26.     PPrtr -- allows retrieval or change to any attribute of the default
  27.              printer
  28.  
  29.     DefPrtr -- allows you to find out or change the default printer
  30.  
  31.     Prtrs -- returns semi-colon delimeted list of available active
  32.              printers
  33.  
  34.     PrtrCap -- returns structure (VB type) containing default printer
  35.                device capabilities
  36.  
  37.     GetPrtr -- returns the name of the current default printer
  38.  
  39.     GetPort -- returns the port of the current default printer
  40.  
  41. -----------------------------------------------------------------------
  42.  
  43. function prototypes:          ( in C format ) :
  44.  
  45.     int FAR PASCAL PPrtr (HWND hwndx, int selection, int NewValue, int action);
  46.     int FAR PASCAL Prtrs (LPSTR szActives);
  47.     int FAR PASCAL DefPrtr (LPSTR szNewPrinter, LPSTR szOldPrinter);
  48.     int FAR PASCAL GetPrtr (LPSTR szPrtr);
  49.     int FAR PASCAL GetPort (LPINT szPort);
  50.     int FAR PASCAL PrtrCap (LPINT nDevCap);
  51.  
  52. -----------------------------------------------------------------------
  53.  
  54. function definitions:         ( in Visual Basic format ) :
  55.  
  56.     ******************************** PPrtr **********************************
  57.  
  58.     Declare Function PPrtr Lib "PPRTR.DLL" (ByVal hWnd As Integer, ByVal ppSelection As Integer, ByVal PPNewValue As Integer, ByVal ppAction As Integer) As Integer
  59.  
  60.           where:    hWnd ................ is a window handle
  61.                     ppSelection ......... is the selected printer device
  62.                                            attribute to get/change.
  63.                                       ... NOTE that not all printers
  64.                                            support all actions (e.g. my
  65.                                            Epson LX-800 doesn't support
  66.                                            PaperLength or PaperWidth)
  67.                     ppNewValue .......... is the value to change it to
  68.                                       ... (anything will do call is a
  69.                                            gimme, no change )
  70.                                       ... see PPGLOBAL.TXT for available
  71.                                            values
  72.                     ppAction ............ is the action requested
  73.                                       ...  0 = gimme current value
  74.                                       ...  1 = change it to ppNewValue
  75.              returns ......... integer of value of selected attribute
  76.                                 before the call
  77.                            ... 996 when the ppSelection is not supported
  78.                                    by the default printer driver
  79.                            ... 997 for a bad ppSelection code parameter
  80.                            ... 998 for a bad ppAction code parameter
  81.                            ... 999 when it can't find printer/driver info
  82.  
  83.     ppSelection:
  84.         DM_ORIENTATION = &H1
  85.         DM_PAPERSIZE = &H2
  86.         DM_PAPERLENGTH = &H4
  87.         DM_PAPERWIDTH = &H8
  88.         DM_SCALE = &H10
  89.         DM_COPIES = &H100
  90.         DM_DEFAULTSOURCE = &H200
  91.         DM_PRINTQUALITY = &H400
  92.         DM_COLOR = &H800
  93.         DM_DUPLEX = &H1000
  94.         DM_YRESOLUTION = &H2000
  95.         DM_TTOPTION = &H4000
  96.  
  97.  
  98.     Samples:
  99.  
  100.         PPrtr(hWnd, DM_PAPERSIZE, PP_UNNEEDED, PP_GIMME))
  101.         PPrtr(hWnd, DM_ORIENTATION, PP_UNNEEDED, PP_GIMME))
  102.  
  103.         PPrtr(hWnd, DM_ORIENTATION, DMORIENT_PORTRAIT, PP_CHANGE_IT))
  104.         PPrtr(hWnd, DM_PAPERSIZE, DMPAPER_LEGAL, PP_CHANGE_IT))
  105.  
  106.     C programmers...the relavent header file for this call is PRINT.H
  107.                     (in Borland C++)
  108.     ******************************** DefPrtr *******************************-
  109.  
  110.     Declare Function DefPrtr Lib "PPRTR.DLL" (ByVal newone As String, ByVal oldone As String) As Integer
  111.  
  112.        where:  newone .. is a string corresponding to the
  113.                          right side of the "=" in the
  114.                          [devices] section of WIN.INI
  115.                          for the printer to become the
  116.                          default printer...e.g.
  117.  
  118.                                     [devices]
  119.                                     HP LaserJet Series II=HPPCL,LPT1:
  120.                                     ^^^^^^^^^^^^^^^^^^^^^ <- this part
  121.  
  122.                          You can also read the printer name in the
  123.                          control panel printers dialog box.  It shows
  124.                          printer names followed by "on xxxx:" where
  125.                          xxxx is a port.  Don't use one where it says
  126.                          "on None".
  127.  
  128.                                     HP LaserJet Series II on LPT1:
  129.                                     ^^^^^^^^^^^^^^^^^^^^^ <- this part
  130.  
  131.                          This is case insensitive, but otherwise must
  132.                          be identical.
  133.  
  134.                          Note: the printer must have been
  135.                          made "active" in the control panel
  136.                          printers applet...it'll show "None"
  137.                          for a port if it's not...e.g.
  138.  
  139.                             active -> HP LaserJet Series II=HPPCL,LPT1:
  140.                             not ----> HPGL Plotter=MGXHPGL,None
  141.  
  142.                          Passing this parameter as an empty string or
  143.                          unrecognizable string results in a 998 error, but
  144.                          does return the name of the current printer
  145.                          in the "oldone" parameter...thus, allowing
  146.                          retrieval of the name of the current default
  147.                          printer without changing anything:
  148.  
  149.                             currentptr$ = String$(255, 0)
  150.                             i = DefPrtr("", currentptr$)
  151.  
  152.        where:  oldone .. is a string in which the function will return
  153.                          the default printer before your call.
  154.  
  155.                          Save this for use as "newone" to reset the
  156.                          printer to the prior default printer when
  157.                          and if you desire to do so.
  158.  
  159.                          Note: in Visual Basic you must pre-load a
  160.                          string which is to be filled by a called
  161.                          function...e.g.
  162.  
  163.                             oldptr$ = String$(255, 0)
  164.                             i = DefPrtr("HP LaserJet Series II", oldptr$)
  165.  
  166.        returns:          0   = successful
  167.                          999 = Unable to write to WIN.INI ... this
  168.                                is a system problem.
  169.                          998 = The "newone" printer was not found in
  170.                                [devices] section of WIN.INI
  171.                                ... be sure you've put in all spaces
  172.                          997 = The "newone" printer was found, but it
  173.                                is not "active"...i.e. its port is
  174.                                "None"
  175.  
  176.  
  177.     Sample:
  178.        Declare Function DefPrtr Lib "PPRTR.DLL" (ByVal newone As String, ByVal oldone As String) As Integer
  179.  
  180.        //---- change to LaserJet ---------------------
  181.